the promise ne demek?

The Promise (JavaScript)

JavaScript'te Promise, asenkron işlemlerin sonucunu temsil eden bir nesnedir. Temelde, gelecekteki bir değerin (henüz elde edilmemiş olabilir) yer tutucusudur. Özellikle Asenkron programlama işlemlerinde kodun okunabilirliğini ve yönetilebilirliğini artırmak için kullanılır. Bir Promise üç olası durumda olabilir:

  • Pending (Beklemede): Başlangıç durumu. İşlem henüz tamamlanmamış veya başarısız olmamıştır.
  • Fulfilled (Yerine Getirilmiş): İşlem başarıyla tamamlandı ve bir değer döndürdü.
  • Rejected (Reddedilmiş): İşlem bir hata nedeniyle başarısız oldu.

Bir Promise oluşturulduğunda, bir "executor" fonksiyonu alır. Bu fonksiyon iki parametre alır: resolve ve reject.

  • resolve(value): İşlem başarılı olduğunda çağrılır ve Promise'i "fulfilled" durumuna geçirir. value, Promise'in sonucunu temsil eder.
  • reject(reason): İşlem başarısız olduğunda çağrılır ve Promise'i "rejected" durumuna geçirir. reason, hatanın nedenini temsil eder.

Promise'in sonucuna erişmek veya hataları yakalamak için .then() ve .catch() metotları kullanılır:

  • .then(onFulfilled, onRejected): Promise "fulfilled" olduğunda onFulfilled fonksiyonu çağrılır. Promise "rejected" olduğunda (eğer belirtilmişse) onRejected fonksiyonu çağrılır.
  • .catch(onRejected): Sadece Promise "rejected" olduğunda onRejected fonksiyonunu çağırır. Genellikle hata yakalama için .then() metoduna alternatif olarak veya zincirin sonuna eklenir.

Promise Zincirleme (Promise Chaining)

Promise'ler, art arda asenkron işlemleri kolayca yönetmek için zincirlenebilir. Bir .then() metodu yeni bir Promise döndürür ve bu sayede işlemler sıralı bir şekilde gerçekleştirilebilir.

Örnek:

function fetchData(url) {
  return new Promise((resolve, reject) => {
    // Örnek olarak setTimeout ile asenkron bir işlem simüle edelim
    setTimeout(() => {
      const data = { message: "Veri başarıyla alındı!" };
      resolve(data); // İşlem başarılı oldu
      //reject("Veri alınamadı!"); // İşlem başarısız oldu
    }, 1000);
  });
}

fetchData("https://example.com/api/data")
  .then(data => {
    console.log("Alınan veri:", data);
    return "İşlem tamamlandı!"; // Yeni bir değer döndürülüyor
  })
  .then(message => {
    console.log(message); // "İşlem tamamlandı!" yazdırır
  })
  .catch(error => {
    console.error("Hata:", error);
  });

Önemli Kavramlar: